home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b4.d64
/
example11.1
< prev
next >
Wrap
Text File
|
2007-02-28
|
2KB
|
75 lines
0010 DIM LIFE(15,15), CHANGE(15,15)
0020 FOR ROW:=1 TO 15 DO
0030 FOR COL:=1 TO 15 DO
0040 LIFE(ROW,COL):=0
0050 CHANGE(ROW,COL):=0
0060 ENDFOR COL
0070 ENDFOR ROW
0080 READ ROW,COL
0090 WHILE ROW>0 AND COL>0 DO
0100 LIFE(ROW,COL):=1
0110 READ ROW,COL
0120 ENDWHILE
0130 PRINTIT
0140 REPEAT
0150 FLAG:=0
0160 FOR ROW:=2 TO 14 DO
0170 FOR COL:=2 TO 14 DO
0180 TEST(ROW,COL)
0190 ENDFOR COL
0200 ENDFOR ROW
0210 IF FLAG=0 THEN
0220 PRINT "ALL DEAD"
0230 STOP
0240 ENDIF
0250 FOR ROW:=1 TO 15 DO
0260 FOR COL:=1 TO 15 DO
0270 LIFE(ROW,COL):=CHANGE(ROW,COL)
0280 ENDFOR COL
0290 ENDFOR ROW
0300 PRINTIT
0310 UNTIL 2=1
0320 PROC PRINTIT
0330 PRINT CHR$(147)
0340 FOR ROW:=1 TO 15 DO
0350 // GRIDEX:=10; GRIDY:=4
0360 FOR COL:=1 TO 15 DO
0370 IF LIFE(ROW,COL)=1 THEN
0380 CURSOR(COL,ROW)
0390 PRINT "*"
0400 ENDIF
0410 // GRIDEX:=GRIDEX+1
0420 ENDFOR COL
0430 ENDFOR ROW
0440 ENDPROC PRINTIT
0450 PROC TEST(ROW,COL)
0460 COUNT:=0
0470 FOR C:=COL-1 TO COL+1 DO
0480 FOR R:=ROW-1 TO ROW+1 DO
0490 COUNT:=COUNT+LIFE(R,C)
0500 ENDFOR R
0510 ENDFOR C
0520 COUNT:=COUNT-LIFE(ROW,COL)
0530 CHANGE(ROW,COL):=0
0540 IF COUNT=3 OR (COUNT=2 AND LIFE(ROW,COL)=1) THEN
0550 CHANGE(ROW,COL):=1
0560 FLAG:=1
0570 ENDIF
0580 ENDPROC TEST
0590 DATA 6,6,6,7,6,8,6,9,6,10,7,6,7,10,8,6,8,10,9,6,9,10,10,6,10,7
0600 DATA 10,6,10,7,10,8,10,9,10,10,-1,-1
9000 //
9010 //CURSOR IS FORMAT OF BOOK
9020 //IT CALLS REAL'CURSOR WHICH FOLLOWS CBM COMAL METHOD
9030 //
9040 PROC CURSOR(ACROSS,DOWN) CLOSED
9050 ROW':=DOWN; COL':=ACROSS
9060 REAL'CURSOR(ROW',COL')
9070 ENDPROC CURSOR
9080 PROC REAL'CURSOR(ROW',COL') CLOSED
9090 PRINT CHR$(19), //HOME
9100 FOR ROWS:=1 TO ROW' DO PRINT CHR$(17), //DOWN
9110 FOR COLS:=1 TO COL' DO PRINT CHR$(29), //RIGHT
9120 ENDPROC REAL'CURSOR
9130 //